import { createRouter, createWebHistory } from 'vue-router'
import { getConstantRouterMap } from '@/config/router.config'
import { useMenuStore } from '@/store/modules/menu'
const initRouter = () => {
}
let router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [],
})
// 定义一个resetRouter 方法，在退出登录后或token过期后 需要重新登录时，调用即可
export function resetRouter() {
  // const list: any = getConstantRouterMap()
  const menus = useMenuStore()
  router.addRoute(menus.router)
}
let flag = false
router.beforeEach((to, from, next) => {
  if (flag) {
    next()
  } else {
    // ✅ 这将起作用，因为路由器在之后开始导航
    // 路由已安装，pinia 也将安装
    const menus = useMenuStore()
    menus.GenerateRoutes().then(() => {
      resetRouter() // 重置路由 防止退出重新登录或者 token 过期后页面未刷新，导致的路由重复添加
      flag = true
      next()
    })
  }
})
export default router
